Skip to main content

Registries

A registry is the authoritative list of a class of things, with an identifier for each. Client registries hold people, facility registries hold places, health worker registries hold providers, product registries hold commodities.

They are the foundation of exchange. Two systems can share a perfectly valid FHIR Observation and it is worthless if they disagree about which patient it belongs to, or which facility produced it.

Countries that build the interoperability layer before the registries usually end up rebuilding it. This is the single most reliable prediction in this field.


The types​

RegistryHoldsStandardsTypical owner
Client registry / MPIPatients and clientsFHIR Patient, IHE PIX/PDQMinistry of health or national ID authority
Facility registryHealth facilities and service delivery pointsFHIR Location, OrganizationMinistry of health
Health worker registryProviders, their roles and qualificationsFHIR Practitioner, PractitionerRoleMinistry, or professional councils
Organisation registryLegal entities — hospital groups, NGOs, insurersFHIR OrganizationMinistry or business registry
Product catalogueMedicines, vaccines, commoditiesGS1, national drug codesRegulator or procurement agency
Terminology registryCode systems, value sets, mapsFHIR CodeSystem, ValueSetSee terminology services
Device registryEquipment and its locationFHIR DeviceMinistry / biomedical engineering
Immunisation registryDoses administered per personFHIR ImmunizationImmunisation programme
Disease registriesCancer, TB, HIV, rare disease cohortsProgramme-specificDisease programme
Civil registrationBirths and deathsNational standardsCivil registration authority

The first three are the OpenHIE core, and they are enough to start.


Registry versus repository​

A distinction worth enforcing:

  • A registry holds identity and a small set of attributes needed to identify and locate. It answers who and where.
  • A repository holds the substantive data. It answers what happened.

Client registries hold demographics and identifiers, not diagnoses. Facility registries hold codes, names, locations and service types, not monthly reporting figures. Registries that accumulate operational data become slow, sensitive and contested, and lose the property that made them useful — being small, stable and universally trusted.


Identifier design​

The decisions here outlive everything else in the architecture. Make them deliberately and record them in an ADR.

Namespacing​

An identifier without a namespace is ambiguous. FHIR expresses this as a system URI plus a value:

"identifier": [
{ "system": "http://moh.gov.example/nid", "value": "123456789" },
{ "system": "http://hospitalA.example/mrn", "value": "A-0042" }
]

Every issuing authority needs a registered, permanent namespace URI. Publish the list; do not let each project invent one.

Local plus shared​

Point-of-service systems must be able to hold both their local identifier and the shared one. A system that supports only one identifier per patient cannot participate in a federated ecosystem — this belongs in procurement requirements, not in an integration discovery phase.

Check digits and format​

A check digit catches the majority of transcription errors at the point of entry, which is far cheaper than reconciling them later. Define the format, publish the validation algorithm, and enforce it in every client.

The absent identifier​

Design for it explicitly, because it is the common case:

  • Newborns, before any identifier is issued
  • Unconscious or unidentified patients in emergencies
  • Undocumented and displaced populations
  • Systems not yet integrated with the national ID

The usual answer is a temporary identifier issued by the registry, with a defined process for later merging into the permanent one. If you do not design this, clerks will invent it — typically by entering fake national ID numbers, which corrupts the registry permanently.

National ID and health identifiers​

Using the national ID as the health identifier is convenient and carries costs:

Reuse national IDSeparate health identifier
Matching qualityHigher, if coverage is goodDepends on your own registry
CoverageExcludes anyone without one — often the most vulnerableCan cover everyone
Linkage riskHealth data becomes trivially linkable to tax, police, welfareLinkage requires deliberate mapping
GovernanceDepends on another agency's policy and outagesUnder health governance

A common middle path: a distinct health identifier, cross-referenced to the national ID where one exists. See digital public infrastructure for how this interacts with foundational identity systems.


Cross-cutting requirements​

Every registry needs these, and they are usually under-specified:

  • A canonical read API with pagination, search and change notification
  • A change feed — downstream systems need to learn about new and updated entries without polling everything
  • Versioning and effective dates — a facility that closed in 2024 must still resolve for data recorded in 2023
  • Merge and unmerge — with full history, because merges are sometimes wrong
  • Stewardship — a named team that adjudicates, not an automated process alone
  • Audit — who changed what, when, and on what evidence
  • An offline story — a downloadable snapshot for systems that cannot query live. See offline-first.
  • Data quality monitoring — duplicate rate, completeness, staleness, tracked over time

That last point is the one that separates a maintained registry from an abandoned one. Publish the numbers.


Sequencing​

  1. Facility registry first. It is the least politically contentious, the smallest dataset, and almost everything else depends on it.
  2. Health worker registry second, if professional council data exists to seed it.
  3. Client registry when individual-level exchange is actually needed — not before, because it is expensive to run and the matching quality depends on having real data flowing through it.
  4. Product catalogue when supply chain integration begins.
  5. Terminology throughout — it is needed from the first coded field.

Open-source options​

ProjectRegistry typeNotes
OpenCRClient registryOpenHIE community client registry, FHIR-based
SanteMPI / SanteDBClient registryMaster patient index and health data platform
OpenEMPIClient registryLong-established MPI; check current activity
GOFR / FHIR-based facility registriesFacilityGlobal Open Facility Registry work in the OpenHIE community
DHIS2 organisation unit hierarchyFacility (de facto)Many countries' facility list lives here in practice
HAPI FHIRAnyA conformant FHIR server can back a registry with appropriate profiles

All Tier 2. Verify current maintenance status before selecting — see the platform directory.


References​